Problem s nastavenim rozsirenych vlastnosti tisku
Otázka od: Martin Radvansky
30. 6. 2004 16:01
Dobry den,
mel bych jeden problemek.
Rad bych ve sve aplikavi vyuzil pri tisku pres PRINTER
nastavil zvetsoveni a zmensovani vystupu na tiskarnu.
Nasel jsem tedy v API moznost pres DEVICEMODE.
Zde je ukazka kodu.
with Printer do begin
GetPrinter(ADevice,ADriver,APort,DeviceHandle);
if DeviceHandle <>0 then begin
DevMode:=GlobalLock(DeviceHandle);
with DevMode^ do begin
dmFields:=dmFields or DM_SCALE;
dmScale:=10; //10% puvodni velikosti
end;
SetPrinter(ADevice,ADriver,APort,DeviceHandle);
GlobalUnlock(DeviceHandle);
end;
Title := gsPrintFile;
//Copies:=liKopie;
BeginDoc;
.
Vlastni tisk TextOut .....
.
EndDoc;
end;
Uvedeny kod nevyvola vyjimku, ale take se neprovede zvetseni ci
zmenseni tiskoveho vystupu. Pravdepodobne jsem na neco zapomnel, ale
nevim na co.
Prosel jsaem vsemozne priklady a vsude je to stejne. Netusi nekdo co s
tim?
Pokud nahradim DM_SCALE DM_COPIES, tak se to taky neprojevi na poctu
kopii.
Dekuji za kazdy napad
--
S pozdravem,
Martin Radvansky
Odpovedá: Martin Radvansky
30. 6. 2004 20:20
Jeste pro upresneni,
pokud pouziju nastaveni papiru nalezato tak to tiskarna provede,
ale pocet kopii nebo meritko tisku ani za nic, proste to nereaguje.
Da se nejak zjistit, ze tiskarna tyto nastaveni nepodporuje,
mozna bych chapal meritko, ale pocet kopii?
Jeste mozna tedy jinak.
Co vlastne potrebuji.
Potrebuji dostat na stranku tiskovou 63 radku a rekneme urcity pocet
znaku, tak aby nebyly velke mezery mezi radky, jeste to musi byt font
se stejnou sirkou vsech znaku. To by znamenalo tedy vysku znaku
znamit, ale nevim jak na to.
(Jedna se mi o to nasimulovat tisk starych DOS tiskovych sestav pro
jehlickovou tiskarnu na GDI tiskarne)
Diky za pripadne napady.
--
S pozdravem,
Martin Radvansky
Odpovedá: Fitz Ladislav
1. 7. 2004 8:20
co se tyka stejne sirky vsech znaku budes muset pouzit font ktery je takto
navrhnuty napr.: Courier (nebo tisknout text znak po znaku a vypocitavat
jeho pozici)
co se tyka nastaveni tiskarny tak se zkus podivat na
http://www.volny.cz/maxi_fikus/ mam tam unity pro tisk kde nastavuji pocet
kopii i s testem zda to tiskarna umi a od toho se muzes odpichnout
co se tyka simulace dosoveho tisku existuje moznost tisknout primo znakove,
podivej se na API Escape s parametrem PASSTHROUGH